package org.yoyo.classroom.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.yoyo.classroom.domain.po.Notice;
import org.yoyo.classroom.domain.query.NoticeQuery;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: cc
 * @Date: 2024/12/22/10:32
 **/
@Mapper
public interface NoticeMapper {
    /**
     * 查询公告列表
     */
    List<Notice> selectNoticeList(NoticeQuery query);

    /**
     * 新增公告
     */
    int insert(Notice notice);

    /**
     * 修改公告
     */
    int update(Notice notice);

    /**
     * 更新公告状态
     */
    int updateStatus(@Param("id") Long id, @Param("status") String status);

    /**
     * 删除公告（逻辑删除）
     */
    int delete(@Param("id") Long id);

    /**
     * 根据ID查询公告
     */
    Notice selectById(@Param("id") Long id);

    /**
     * 批量删除公告
     */
    int deleteBatch(@Param("ids") List<Long> ids);

    /**
     * 查询指定类型的最新公告
     */
    List<Notice> selectLatestByType(@Param("type") Integer type, @Param("limit") Integer limit);
}